#include "database.h"
#include "ui_database.h"
#include "modbusmaster.h"
#include <QDateTime>
QSqlDatabase db;

DataBase::DataBase(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::DataBase)
{
    ui->setupUi(this);

    //创建数据库
       if(!CreateConnect())
       qDebug() << "error" <<endl;
       qDebug() << "come here" <<endl;
}

DataBase::~DataBase()
{
    delete ui;
//    if (D)
//    delete D;
}

bool DataBase::CreateConnect(void)
{
    //添加MySql数据库
     db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("Modbus_Server.db");

    //打开数据库
    if( !db.open() ) //数据库打开失败
    {
        QMessageBox::warning(this, "错误", db.lastError().text());
        return false;
    }
    //设置模型
    model = new QSqlTableModel(this);
    model->setTable("Modbus_Data");//制定使用哪个表
    //把model放在view
    ui->tableView->setModel(model);
    //显示model里的数据
    model->select();
    //设置model的编辑模式，手动提交修改
  //  model->setEditStrategy(QSqlTableModel::OnManualSubmit);

    return true;

}

void UpdataData(void)
{
    QSqlDatabase db = QSqlDatabase::database();
    QSqlQuery query(db);
    query.exec("select * from Modbus_Data");//没有这句  query.last()会返回flase

    query.last();

    QString idm = QString::number(query.at() +1);
    QString show_data[6];
    for(int i=0;i<6;i++)
    {
       show_data[i] = QString::number(Udata.Data[i]);
    }

    //获取当前时间
    QDateTime time = QDateTime::currentDateTime();//获取系统现在的时间
    QString time_new = time.toString("yyyy-MM-dd hh:mm:ss"); //设置显示格式

     query.exec("create table Modbus_Data(id int primary key,time varchar(23), longitude float(8,5), latitude float(8,5), "
                "Dive float(8,2), Pitch float(6,2), Roll float(6,2), Yaw float(6,2))");

    QString sqlquery = QString("insert into Modbus_Data(id, time, longitude, latitude, Dive,Pitch,Roll,Yaw) "
                               "values(%1,'%2', %3, %4, %5, %6, %7,%8)").arg(idm).arg(time_new).arg(show_data[0]).arg(show_data[1]).\
            arg(show_data[2]).arg(show_data[3]).arg(show_data[4]).arg(show_data[5]);//之前由于'%2' 单引号问题写入数据库失败

//         qDebug() << sqlquery <<endl;
//    qDebug() << query.exec(sqlquery) <<endl;
    query.exec(sqlquery);

}
